home *** CD-ROM | disk | FTP | other *** search
/ Aminet 39 / Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso / Aminet / biz / swood / FW_AllInOne.lha / Makros / DBImport.long < prev    next >
Text File  |  1998-01-17  |  20KB  |  686 lines

  1. /*DBImport - Import der Datenbank-Export-Dateien in FW-Tabellen */
  2.  
  3. /* rechte Ausrichtung verbessert
  4.    schnellere Datenausgabe, durch "nur Schreiben wenn Feld Text enthält"
  5. */
  6.  
  7. Parse ARG FW
  8.  
  9. if ~show('L',"rexxreqtools.library") then
  10.    if ~addlib('rexxreqtools.library',0,-30,0) then do
  11.       ShowMessage 1 1 '"Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
  12.       exit
  13.    end
  14.  
  15. IF ~show('L','tritonrexx.library') then
  16.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  17.       ShowMessage 2 1 '"Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
  18.       exit
  19.    END
  20.  
  21. R='0A'X
  22. SIGNAL ON SYNTAX
  23.  
  24. If FW='' then do
  25.    Address='FinalW'
  26.    Options results
  27.  
  28.    STATUS PORTNAME
  29.    FW = result
  30. End
  31.    address(FW)
  32.  
  33. CtrlUp
  34. ShiftUp
  35. AltUp
  36.  
  37. address "REXX"
  38. If open('Hilfe',"S:FW_Paket.prefs","R") then do    /* Hilfe-Verzeichnis */
  39.    HilfeVerz=readln('Hilfe')
  40.    Call Close('Hilfe')
  41. End
  42. else HilfeVerz=''
  43.  
  44. If ~exists("s:FW_DBImport.prefs") then do
  45.    Ausrichtung=1
  46.    TBreite=1
  47.    Editbreite=17
  48.    Staerke=1
  49.    Zbeschriftung=1
  50.    sTrennung=","
  51.    Aufteilen=0
  52. end
  53. else do
  54.    Call Open("prefs","S:FW_DBImport.prefs","R")
  55.       Ausrichtung  =readln("prefs")
  56.       TBreite      =readln("prefs")
  57.       Editbreite   =readln("prefs")
  58.       Staerke      =readln("prefs")
  59.       Zbeschriftung=readln("prefs")
  60.       Trennung     =readln("prefs")
  61.       Aufteilen    =readln("prefs")
  62.    Call Close("prefs")
  63. end
  64.  
  65. EditBreiteOrig=EditBreite
  66.  
  67. Zbeschriftung.0=4
  68. Zbeschriftung.1="nein"
  69. Zbeschriftung.2="nur 1.Zeile"
  70. Zbeschriftung.3="nur 1.Spalte"
  71. Zbeschriftung.4="1.Zeile & 1.Spalte"
  72.  
  73. TBreite.0=2
  74. TBreite.1="automatisch"
  75. TBreite.2="manuell"
  76.  
  77. Ausrichtung.0=3
  78. Ausrichtung.1="links"
  79. Ausrichtung.2="zentriert"
  80. Ausrichtung.3="rechts"
  81.  
  82. Staerke.0=11
  83. Staerke.1="belassen"
  84. Staerke.2="nein"
  85. Staerke.3="Haarlinie"
  86. Staerke.4=".5 Punkt"
  87. Staerke.5="1 Punkt"
  88. Staerke.6="2 Punkt"
  89. Staerke.7="4 Punkt"
  90. Staerke.8="6 Punkt"
  91. Staerke.9="8 Punkt"
  92. Staerke.10="10 Punkt"
  93. Staerke.11="12 Punkt"
  94.  
  95. If Aufteilen=0 then AufteilText="Nein"
  96.    else AufteilText="Ja"
  97. o0="Layout der Tabelle:"
  98. o1="Datentrennung: "||Trennung||", Tabelle aufteilen: "||AufteilText
  99. o2="Ausrichtung: "||Ausrichtung.Ausrichtung||", Breite: "||Editbreite||" cm"
  100. o3="Umrahmung: "||Staerke.Staerke||", Beschriftung: "||Zbeschriftung.Zbeschriftung
  101.  
  102. apptags = 'TRCA_Name     DBImport',
  103.           'TRCA_LongName "DatabaseImport"',
  104.           'TRCA_Info     "für FinalWriter"',
  105.           'TRCA_Version  "1.0 registered"',
  106.           'TRCA_Release  "1"',
  107.           'TRCA_Date     "14.01.98"',
  108.           'TAG_END'
  109.  
  110. /*******************************************************************************
  111. ** Aufbau der GUI
  112. *******************************************************************************/
  113.  
  114. windowtags = WindowID(1),
  115.              WindowPosition('TRWP_CENTERDISPLAY'),
  116.              WindowFlags('TRWF_NOMINTEXTWIDTH'),
  117.              PubScreenName('FinalWriterPubScreen'),
  118.              WindowTitle("Datenbank-Import"),
  119.              BeginMenu('Projekt'),
  120.                 MenuItem('Voreinsteller...',102),
  121.                 'ItemBarlabel',
  122.                 MenuItem('Q_Verlassen',104),
  123.              BeginMenu('?'),
  124.                 MenuItem('?_Info',101),
  125.                 MenuItem('H_Hilfe',103),
  126.              'HorizGroupAC SpaceS',
  127.                 'VertGroupAC SpaceS',
  128.                    'HorizSeparator',
  129.                    'SpaceS',
  130.                    TextH(o1) 'TRAT_ID 6',
  131.                    'SpaceS',
  132.                    TextN(o0),
  133.                    TextH(o2) 'TRAT_ID 7',
  134.                    TextH(o3) 'TRAT_ID 8',
  135.                    'SpaceS',
  136.                    'HorizSeparator',
  137.                    'Space',
  138.                    'HorizgroupEC',
  139.                       Button('_Anwenden',1),
  140.                       'SpaceS',
  141.                       Button('Ab_bruch',2),
  142.                    'EndGroup SpaceS',
  143.                 'EndGroup SpaceS',
  144.              'EndGroup SpaceS',
  145.           'EndProject'
  146.  
  147. app = TR_CREATEAPP('TRCA_Name DBImport')
  148.  
  149. /*******************************************************************************
  150. ** Abfrage der GUI
  151. *******************************************************************************/
  152.  
  153. IF app ~= '00000000'x THEN DO
  154.    window1 = TR_OPENPROJECT(app,windowtags)
  155.    IF window1 ~= '00000000'x THEN DO
  156.       ende = 0
  157.  
  158.       DO WHILE ~ende
  159.          CALL TR_WAIT(app,'')
  160.  
  161.          DO WHILE TR_HANDLEMSG(app,'event')
  162.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende=1
  163.  
  164.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  165.                SELECT
  166.                   WHEN event.trm_id = 1 THEN Call program      /*starten*/
  167.                   WHEN event.trm_id = 2 THEN ende=1            /*ende*/
  168.  
  169.                   WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Datenbank-Import V1.0 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
  170.                   WHEN event.trm_id = 102 THEN Call Voreinstellung
  171.                   WHEN event.trm_id = 103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"DBImport.guide"||d2c(34)
  172.                   WHEN event.trm_id = 104 THEN ende=1
  173.  
  174.                   OTHERWISE NOP
  175.                END
  176.             END
  177.          END
  178.       END
  179.       CALL TR_CLOSEPROJECT(window1)
  180.    END
  181.    CALL TR_DELETEAPP(app)
  182. END
  183. ELSE
  184.    CALL quit('Kann das Fenster nicht öffnen',10)
  185.  
  186. Exit
  187.  
  188. Program:
  189.  
  190. address "REXX"
  191. verz=GetClip(DBImportVerz)
  192. If verz~="" then do
  193.    pos = max(index(verz,':'),lastpos('/',verz))
  194.    IF (pos ~=0) then verz = LEFT(verz, pos)
  195. END
  196.  
  197. dbank = rtfilerequest(verz,,"Wähle die Exportdatei aus...",,"rt_pubscrname=FinalWriterPubScreen rtfi_matchpat=#?")
  198. IF dbank = "" then return 
  199. SetClip(DBImportVerz,dbank)
  200.  
  201. IF ~OPEN('DB', dbank, "R") THEN Return
  202. a=1
  203. If pos("d2c(",Trennung)~=0 then do
  204.    u=pos("d2c(",Trennung)
  205.    Trennung=Delstr(Trennung,1,u+3)
  206.    u=pos(")",Trennung)
  207.    Trennung=Left(Trennung,1,u-1)
  208.    say Trennung
  209.    Trennung=d2c(Trennung)
  210. End
  211.  
  212. Do ForEver
  213.    line.a=readln("DB")
  214.    If EOF("DB") Then leave
  215.    line.a=line.a||Trennung
  216.    a=a+1
  217. End
  218. line.0=a-1
  219. Call Close("DB")
  220.  
  221. a=0; elemente=0
  222. Do ForEver
  223.    a=pos(Trennung,line.1,a+1)
  224.    If a=0 then leave
  225.    elemente=elemente+1
  226. End
  227.  
  228. address(FW)
  229. GetDocItemPrefs Decimal
  230. Punkt=Result
  231. If Punkt="Comma" then DocItemPrefs Decimal Period
  232.  
  233. Zeile=0; Spalte=0
  234. Select
  235.    When ZBeschriftung=2 then do
  236.       Zeile=1; line.0=line.0+1
  237.    End
  238.    When Zbeschriftung=3 then do
  239.       Spalte=1; elemente=elemente+1
  240.    End
  241.    When ZBeschriftung=4 then do
  242.       Spalte=1; Zeile=1; elemente=elemente+1; line.0=line.0+1
  243.    End
  244.    Otherwise NOP
  245. End
  246.  
  247. Status Page
  248. Seite=result
  249.  
  250. Status ScrollPos
  251. PosTop=Word(result,2)-0.3
  252.  
  253. Numeric Digits 2
  254. ZellenBreite=EditBreite/elemente
  255. If Zellenbreite<0.64 then do
  256.    ShowMessage 1 1 '"Diese Datenbank kann leider nicht importiert werden!"
  257.    "Durch die 'elemente' Spalten, ergibt sich eine Zellenbreite"
  258.    "von 'Zellenbreite'cm. Sie muß aber min. 0.64cm betragen."
  259.    "Achso" "" ""'
  260.    ShowMessage 1 1 '"Um diese Datenbank trotzdem importieren zu können,"
  261.    "vergrößern Sie bitte den Editierbereich. Oder verändern"
  262.    "Sie die Breite der Tabelle (derzeit: 'EditBreite' cm)."
  263.    "Okay" "" ""'
  264.    return
  265. End
  266.  
  267. Numeric Digits 4
  268.  
  269. GetPageSetup Width
  270. PageBreite=result
  271. GetSectionSetup Inside OutSide
  272. DS=result
  273.  
  274. Status View
  275. Zoom=result
  276. GetDisplayPrefs HORIZONTAL
  277. Parse Var result HORI
  278.  
  279. Status Window
  280. Parse Var result . . Weite .
  281. Weite=Weite-20
  282.  
  283. SWeite=PageBreite
  284.  
  285. /*Breite*/
  286. erg=Weite/SWeite*2.54
  287. Diff=HORI/erg
  288.  
  289. SZoom=100/Diff%5*5
  290. If SZoom<20 then SZoom=20
  291. View SZoom
  292.  
  293. Select
  294.    When Ausrichtung=1 then PosLeft=Word(DS,1)-0.3  /*links*/
  295.  
  296.    When Ausrichtung=2 then do
  297.       Verschiebung=(EditBreiteOrig-EditBreite)/2   /*zentriert*/
  298.       PosLeft=Word(DS,1)-0.3+Verschiebung
  299.    End
  300.  
  301.    When Ausrichtung=3 then do                      /*rechts*/
  302.       Verschiebung=EditBreiteOrig-EditBreite
  303.       PosLeft=Word(DS,1)-0.8+Verschiebung
  304.    End
  305.  
  306.    Otherwise PosLeft=Word(DS,1)-0.3                /*volle Breite*/
  307. End
  308.  
  309. If Staerke~=1 then do
  310.    Select
  311.       When Staerke=2 then Rahmen="None"
  312.       When Staerke=3 then Rahmen="HairLine"
  313.       When Staerke=4 then Rahmen="0.5"
  314.       When Staerke=5 then Rahmen="1"
  315.       When Staerke=6 then Rahmen="2"
  316.       When Staerke=7 then Rahmen="4"
  317.       When Staerke=8 then Rahmen="6"
  318.       When Staerke=9 then Rahmen="8"
  319.       When Staerke=10 then Rahmen="10"
  320.       When Staerke=11 then Rahmen="12"
  321.       Otherwise NOP
  322.    End
  323.    TablePrefsLine Exterior LineWt Rahmen
  324.    TablePrefsLine Interior LineWt Rahmen
  325.    TablePrefsLine FirstRow LineWt Rahmen
  326.    TablePrefsLine LastRow LineWt Rahmen
  327.    TablePrefsLine FirstCol LineWt Rahmen
  328.    TablePrefsLine LastCol LineWt Rahmen
  329. End
  330.  
  331. If Aufteilen=1 then do
  332.    result="ß"
  333.    RequestText '"Die Datei beinhaltet 'line.0' Zeilen." "Geben Sie die Zeilen pro Seite an..." ""'
  334.    If (result~="ß" & result~="") then ZproSeite=result
  335.       else ZproSeite=line.0
  336. end
  337. else ZproSeite=line.0
  338.  
  339. If Spalte=0 Then SAnf=0
  340.    Else SAnf=1
  341. If Zeile=0 Then ZAnf=0
  342.    Else ZAnf=1
  343.  
  344. j=0; ges=0
  345. Do ForEver
  346.    TablePrefs ROWS ZproSeite COLUMNS elemente COLUMNWIDTH Zellenbreite
  347.    CreateTable Seite+j PosLeft PosTop
  348.    Redraw
  349.    u=j+1
  350.    CurrentObject
  351.    TabelleID.u=result
  352.    i=0
  353.    Do ForEver
  354.       i=i+1; ges=ges+1
  355.       ColZelle=1
  356.       Do ForEver
  357.          a=pos(Trennung,line.ges)
  358.          If a=0 then Leave
  359.  
  360.          AnfPos1=pos(d2c(34),line.ges)
  361.          If AnfPos1=0 then Zelle=Left(line.ges,a-1)  /* kein "" */
  362.          Else do
  363.             Komma  =pos(Trennung,line.ges,AnfPos1)
  364.             AnfPos2=LastPos(d2c(34),line.ges,Komma)
  365.             Zelle  =Left(line.ges,AnfPos2-1)
  366.             Zelle=Delstr(Zelle,1,AnfPos1)
  367.          End
  368.  
  369.          if (i+ZAnf)//(ZproSeite+1)=0 then leave
  370.          If Zelle~="" then do
  371.             TableSetActiveCell i+ZAnf ColZelle+SAnf
  372.             Type Zelle
  373.          End
  374.  
  375.          ColZelle=ColZelle+1
  376.          line.ges=Delstr(line.ges,1,a)
  377.  
  378.       End
  379.       if (i+ZAnf)//ZproSeite=0 then leave
  380.    End
  381.    If (ges+Zanf)>=line.0 then leave
  382.    j=j+1
  383.    TextTool; InsertPageBreak
  384. End
  385. Redraw
  386. TabelleID.0=u
  387.  
  388. If Zeile=1 then o=2
  389.    else o=1
  390.  
  391. If Spalte=1 then
  392.    Do p=1 to TabelleID.0
  393.       Do a=o to ZproSeite
  394.          SelectObject TabelleID.p
  395.          TableSetActiveCell a 1
  396.          result="ß"
  397.          RequestText '"Zeilen beschriften" "'a'.Zeile" ""'
  398.          If result='ß' then Text=""
  399.             Else Text=result
  400.          If Text~="" then Type Text
  401.          Redraw
  402.       End
  403.    End
  404.  
  405. If Zeile=1 then
  406.    Do a=1 to elemente
  407.       SelectObject TabelleID.1
  408.       TableSetActiveCell 1 a
  409.       result="ß"
  410.       RequestText '"Spalten beschriften" "'a'.Spalte" ""'
  411.       If result='ß' then Text=""
  412.          Else Text=result
  413.  
  414.       If Text~="" then do
  415.          Type Text
  416.          Do u=2 to TabelleID.0
  417.             SelectObject TabelleID.u
  418.             TableSetActiveCell 1 a
  419.             If Text~="" then Type Text
  420.             Type Text
  421.          End
  422.          Redraw
  423.       End
  424.    End
  425.  
  426. View Zoom
  427. If Punkt="Comma" then DocItemPrefs Decimal Comma
  428. Return
  429.  
  430.  
  431. Voreinstellung:
  432. If TBreite=2 then Disi=0
  433.    else Disi=1
  434. /*address(FW)
  435. Call TabBreitenkontrolle*/
  436.  
  437. windowtags = WindowID(2),
  438.              WindowPosition('TRWP_CENTERDISPLAY'),
  439.              WindowFlags('TRWF_NOMINTEXTWIDTH'),
  440.              PubScreenName('FinalWriterPubScreen'),
  441.              WindowTitle('Datenbank-Import-Voreinsteller'),
  442.              'HorizGroupAC SpaceS',
  443.                 'VertGroupA SpaceS',
  444.                    'HorizGroupAC',
  445.                       TextID('_Datentrennung:',3),
  446.                       'SpaceS',
  447.                       StringGadget(Trennung,3),
  448.                    'EndGroup',
  449.                    'SpaceS',
  450.                    'HorizGroupAC',
  451.                       TextID('Tabelle auftei_len:',9),
  452.                       'SpaceS',
  453.                       CheckBox(9) 'TRAT_VALUE' Aufteilen,
  454.                    'EndGroup',
  455.                    'HorizGroupAC',
  456.                       TextID('Tabellenaus_richtung:',6),
  457.                       'SpaceS',
  458.                       CycleGadget('Ausrichtung',Ausrichtung-1,6) 'TRAT_Flags TRCY_RIGHTLABELS',
  459.                    'EndGroup',
  460.                    'HorizGroupAC',
  461.                       TextID('Tabellenbrei_te:',7),
  462.                       'SpaceS',
  463.                       CycleGadget('TBreite',TBreite-1,7) 'TRAT_Flags TRCY_RIGHTLABELS',
  464.                    'EndGroup',
  465.                    'HorizGroupAC',
  466.                       TextN('                       '),
  467.                       'SpaceS',
  468.                       StringGadget(Editbreite,4) 'Trat_Disabled' Disi,
  469.                       'SpaceS',
  470.                       TextN('cm'),
  471.                    'EndGroup',
  472.                    'SpaceS',
  473.                    'HorizGroupAC',
  474.                       TextID('Zellen_umrahmung:',5),
  475.                       'SpaceS',
  476.                       CycleGadget('Staerke',Staerke-1,5) 'TRAT_Flags TRCY_RIGHTLABELS',
  477.                    'EndGroup',
  478.                    'HorizGroupAC',
  479.                       TextID('_Zellenbeschriftung:',8),
  480.                       'SpaceS',
  481.                       CycleGadget('Zbeschriftung',Zbeschriftung-1,8) 'TRAT_Flags TRCY_RIGHTLABELS',
  482.                    'EndGroup',
  483.                    'SpaceS',
  484.                    'HorizSeparator',
  485.                    'SpaceS',
  486.                    'HorizGroupEC',
  487.                       Button('_Sichern',15),
  488.                       'SpaceS',
  489.                       Button('_Anwenden',10),
  490.                       'SpaceS',
  491.                       Button('Ab_bruch',20),
  492.                    'EndGroup SpaceS',
  493.                 'EndGroup SpaceS',
  494.              'EndGroup SpaceS',
  495.           'EndProject'
  496. app2 = TR_CREATEAPP('TRCA_Name DBImport2')
  497.  
  498. oldAusrichtung=Ausrichtung
  499. oldTBreite=TBreite
  500. oldStaerke=Staerke
  501. oldZbeschriftung=Zbeschriftung
  502. oldEditbreite=Editbreite
  503. oldAufteilen=Aufteilen
  504.  
  505. IF app2 ~= '00000000'x THEN DO
  506.    window2 = TR_OPENPROJECT(app2,windowtags)
  507.    IF window2 ~= '00000000'x THEN DO
  508.       ende2 = 0
  509.  
  510.       DO WHILE ~ende2
  511.          CALL TR_WAIT(app2,'')
  512.  
  513.          DO WHILE TR_HANDLEMSG(app2,'event')
  514.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende2 = 1
  515.  
  516.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  517.                SELECT
  518.                   WHEN event.trm_id = 6 THEN Ausrichtung=event.trm_data+1
  519.  
  520.                   WHEN event.trm_id = 7 THEN do
  521.                      TBreite=event.trm_data+1
  522.                      Call TabBreitenkontrolle
  523.                      Call TR_SetAttribute(window2,4,'TROB_STRING',EditBreite)
  524.                      Call TR_SetAttribute(window2,4,'TRAT_Disabled',Disi)
  525.                   End
  526.  
  527.                   WHEN event.trm_id = 5 THEN Staerke=event.trm_data+1
  528.  
  529.                   WHEN event.trm_id = 8 THEN Zbeschriftung=event.trm_data+1
  530.  
  531.                   WHEN event.trm_id = 9 THEN Aufteilen=event.trm_data
  532.  
  533.                   OTHERWISE NOP
  534.                END
  535.             END
  536.  
  537.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  538.                SELECT
  539.                   WHEN event.trm_id = 10 THEN Do               /*okay*/
  540.                      Call Auslesen
  541.                      if okay=1 then Call Schreiben
  542.                   END
  543.  
  544.                   WHEN event.trm_id = 15 THEN Do               /*speichern*/
  545.                      Call Auslesen
  546.  
  547.                      If okay=1 then do
  548.                         Call Open("prefs","s:FW_DBImport.prefs","W")
  549.                         Writeln('prefs',Ausrichtung)
  550.                         Writeln('prefs',TBreite)
  551.                         Writeln('prefs',Editbreite)
  552.                         Writeln('prefs',Staerke)
  553.                         Writeln('prefs',Zbeschriftung)
  554.                         Writeln('prefs',Trennung)
  555.                         Writeln('prefs',Aufteilen)
  556.                         Call Close("prefs")
  557.  
  558.                         Call Schreiben
  559.                      End
  560.                   END
  561.  
  562.                   WHEN event.trm_id = 20 THEN Do                /*Abbrechen*/
  563.                      Ausrichtung=oldAusrichtung
  564.                      TBreite=oldTBreite
  565.                      Staerke=oldStaerke
  566.                      Zbeschriftung=oldZbeschriftung
  567.                      EditBreite=oldEditBreite
  568.                      Aufteilen=oldAufteilen
  569.                      ende2=1
  570.                   END
  571.  
  572.                   OTHERWISE NOP
  573.                END
  574.             END
  575.          END
  576.       END
  577.       CALL TR_CLOSEPROJECT(window2)
  578.    END
  579.    CALL TR_DELETEAPP(app2)
  580. END
  581. ELSE
  582.    CALL quit('Kann das Fenster nicht öffnen',10)
  583.  
  584. Return
  585.  
  586. TabBreitenkontrolle:
  587. If TBreite=2 then do
  588.    Disi=0
  589.    address(FW)
  590.    GetPageSetup Width
  591.    PageBreite=result
  592.    GetSectionSetup Inside OutSide
  593.    DS=result
  594.    EditBreite=PageBreite-Word(DS,1)-Word(DS,2)
  595.    EditBreiteOrig=EditBreite
  596. End
  597. else disi=1
  598. Return
  599.  
  600. Auslesen:
  601.    okay=0
  602.  
  603.    address(FW)
  604.    GetPageSetup Width
  605.    PageBreite=result
  606.    GetSectionSetup Inside OutSide
  607.    DS=result
  608.    EditBreiteOrig=PageBreite-Word(DS,1)-Word(DS,2)
  609.  
  610.    If Disi=1 then EditBreite=EditBreiteOrig
  611.  
  612.    If Disi=0 then do
  613.       EditBreite = TR_GETATTRIBUTE(window2,4,'TROB_String')
  614.       Select
  615.          When (Datatype(EditBreite,'N')=0 | EditBreite="") then do
  616.             Call rtezrequest("Die Tabellenbreite bitte numerisch (.) angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  617.             Call TR_SendMessage(window2,4,'TROM_ACTIVATE',0)
  618.             return
  619.          end
  620.          When Editbreite<0.64 then do
  621.             ShowMessage 1 1 '"Zu niedrige Breite!" "Eine Zelle muß mindestens 0.64cm breit sein." ""
  622.             "Okay" "" ""'
  623.             Call TR_SendMessage(window1,3,'TROM_ACTIVATE',0)
  624.             Return
  625.          End
  626.          When EditBreite>EditBreiteOrig then do
  627.            ShowMessage 1 1 '"Die Tabelle ist größer als der Editierbereich."
  628.             "Er beträgt nur: 'EditBreiteOrig' cm." ""
  629.             "Achso" "" ""'
  630.             Call TR_SETATTRIBUTE(window2,4,'TROB_String',EditBreiteOrig)
  631.             Call TR_SendMessage(window2,4,'TROM_ACTIVATE',0)
  632.             Return
  633.          End
  634.          Otherwise NOP
  635.       End
  636.    End
  637.  
  638.    Trennung=TR_GETATTRIBUTE(window2,3,'TROB_String')
  639.  
  640.    okay=1
  641. Return
  642.  
  643. Schreiben:
  644.    If Aufteilen=0 then AufteilText="Nein"
  645.       else AufteilText="Ja"
  646.    o1="Datentrennung: "||Trennung||", Tabelle aufteilen: "||AufteilText
  647.    o2="Ausrichtung: "||Ausrichtung.Ausrichtung||", Breite: "||Editbreite||" cm"
  648.    o3="Umrahmung: "||Staerke.Staerke||", Beschriftung: "||Zbeschriftung.Zbeschriftung
  649.    Call TR_SETATTRIBUTE(window1,6,'TRAT_TEXT',o1)
  650.    Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',o2)
  651.    Call TR_SETATTRIBUTE(window1,8,'TRAT_TEXT',o3)
  652.    ende2=1
  653. Return
  654.  
  655. /*******************************************************************************
  656. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  657. *******************************************************************************/
  658.  
  659. SYNTAX:
  660.    CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
  661.  
  662. /*******************************************************************************
  663. ** Script beenden
  664. *******************************************************************************/
  665.  
  666. quit:
  667.    PARSE ARG message,rcode
  668.  
  669.    IF app ~= '00000000'x THEN DO
  670.       IF message ~= '' THEN
  671.          ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  672.  
  673.       CALL TR_DELETEAPP(app)
  674.    END
  675.    ELSE
  676.       IF message ~= '' THEN DO
  677.          SAY message
  678.          SAY
  679.          OPTIONS PROMPT 'Bitte <RETURN> drücken'
  680.          PULL taste
  681.       END
  682.  
  683.    address command "flushtrx all"
  684.    EXIT(rcode)
  685.  
  686.